package com.yidu.t299.service.zzy.impl;

import com.yidu.t299.dao.zzy.TeacherRemarkMapper;
import com.yidu.t299.domain.zzy.Class;
import com.yidu.t299.domain.zzy.Record;
import com.yidu.t299.domain.zzy.School;
import com.yidu.t299.domain.zzy.TeacherRemark;
import com.yidu.t299.service.zzy.TeacherRemarkBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author twj
 * @version 1.0.0
 */
@Service
@Transactional
public class TeacherRemarkBizImpl implements TeacherRemarkBiz {
    @Autowired
    private TeacherRemarkMapper teacherRemarkMapper;

    /**
     * 根据校区编号删除该校区信息
     *
     * @param remarkId 校区编号
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int deleteByPrimaryKey(Integer remarkId) {
        return teacherRemarkMapper.deleteByPrimaryKey(remarkId);
    }

    /**
     * 添加校区信息
     *
     * @param record 校区对象
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int insert(TeacherRemark record) {
        return teacherRemarkMapper.insert(record);
    }

    /**
     * 根据校区编号查询指定的信息
     *
     * @param remarkId 校区编号
     * @return 校区对象
     */
    @Override
    public TeacherRemark selectByPrimaryKey(Integer remarkId) {
        return teacherRemarkMapper.selectByPrimaryKey(remarkId);
    }

    /**
     * 按条件分页查询校区数据集合
     *
     * @param rows      每页的行数
     * @param page      页码
     * @param condition 条件参数
     * @return 校区对象集合
     */
    @Override
    public List<TeacherRemark> selectByPage(int rows, int page, String condition) {
        return teacherRemarkMapper.selectByPage(rows, page, condition);
    }

    /**
     * 按条件查询school表中数据行数
     *
     * @param condition 条件参数
     * @return 数据行数
     */
    @Override
    public int selectCount(String condition) {
        return teacherRemarkMapper.selectCount(condition);
    }

    /**
     * 根据校区信息修改其数据
     *
     * @param record 校区对象
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int updateByPrimaryKey(TeacherRemark record) {
        return teacherRemarkMapper.updateByPrimaryKey(record);
    }

    /**
     * 根据实体类各属性值生成条件字符串
     *
     * @param record 校区对象
     * @return 条件字符串
     */
    @Override
    public String getCondition(TeacherRemark record) {
        // 定义条件字符串变量，初始值为空格字符串
        String condition = " ";
        // 如果成绩对象为空，则直接返回空条件字符串
        if (record == null) {
            return condition;
        }
        //条件筛选：这里注意要加别名，因为根据条件字符串查询行数的sql语句用的是多表联查!!!
        if(record.getRecordName()!=null && record.getRecordName().trim().length()!=0){
            condition = " and r.record_name like '%"+record.getRecordName()+"%'";
        }
        // 返回条件字符串
        return condition;
    }

    /**
     * 针对学员表(student_manage)进行操作
     * 根据学员名称查找其编号
     *
     * @param shoolName 学员名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public Integer selectBySchoolName(String shoolName) {
        return teacherRemarkMapper.selectBySchoolName(shoolName);
    }

    /**
     * 针对校区表(school)进行操作
     * 根据校区名称查找其编号
     *
     * @param ClassName 校区名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public Integer selectByClassName(String ClassName) {
        return teacherRemarkMapper.selectByClassName(ClassName);
    }

    /**
     * 针对课程表(lesson)进行操作
     * 根据课程名称查找其编号
     *
     * @param recordName 课程名称
     * @return 影响的行数(> 1 : 成功)
     */
    @Override
    public Integer selectByRecordName(String recordName) {
        return teacherRemarkMapper.selectByRecordName(recordName);
    }

    @Override
    public Integer selectByLessonName(String LessonName) {
        return teacherRemarkMapper.selectByLessonName(LessonName);
    }

    /**
     * 得到所有教师集合
     *
     * @return
     */
    @Override
    public List<Record> selectAllGetRecord() {
        return teacherRemarkMapper.selectAllGetRecord();
    }

    /**
     * 得到所有班级集合
     */
    @Override
    public List<Class> selectAllGetClass() {
        return teacherRemarkMapper.selectAllGetClass();
    }

    /**
     * 得到所有班级集合
     * @return
     */
    @Override
    public List<School> selectAllGetSchool() {
        return teacherRemarkMapper.selectAllGetSchool() ;
    }

    /**
     * 根据课程名称查询课程编号
     *
     * @param remarkId 课程名称
     * @return 课程编号
     */
    @Override
    public Integer selectByName(Integer remarkId) {
        return teacherRemarkMapper.selectByName(remarkId);
    }

    @Override
    public List<TeacherRemark> selectAllGetTeacherRemark() {
        return teacherRemarkMapper.selectAllGetTeacherRemark();
    }

    /**
     * 针对学员表(student_manage)进行操作
     * 根据学员名称查找其编号
     *
     * @param schoolName 学员名称
     * @return 影响的行数(> 1 : 成功)
     */
   }
